home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / OCEMessaging.a < prev    next >
Text File  |  1996-05-01  |  40KB  |  1,287 lines

  1. ;
  2. ;    File:        OCEMessaging.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Messaging Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__OCEMESSAGING__') = 'UNDEFINED' THEN
  19. __OCEMESSAGING__ SET 1
  20.  
  21.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  22.     include 'Files.a'
  23.     ENDIF
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27.     IF &TYPE('__DIGITALSIGNATURE__') = 'UNDEFINED' THEN
  28.     include 'DigitalSignature.a'
  29.     ENDIF
  30.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  31.     include 'OCE.a'
  32.     ENDIF
  33.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  34.     include 'OCEAuthDir.a'
  35.     ENDIF
  36.     IF FOR_SYSTEM7_ONLY THEN
  37. ; ****************************************************************************
  38. ;
  39. ; Definitions common to OCEMessaging and to OCEMail. These relate to addressing,
  40. ;message ids and priorities, etc. 
  41. ;
  42. ;  Values of IPMPriority 
  43.  
  44. kIPMAnyPriority                    EQU        0                    ; FOR FILTER ONLY 
  45. kIPMNormalPriority                EQU        1
  46. kIPMLowPriority                    EQU        2
  47. kIPMHighPriority                EQU        3
  48. ; typedef Byte                             IPMPriority
  49.  
  50. ;  Values of IPMAccessMode 
  51.  
  52. kIPMAtMark                        EQU        0
  53. kIPMFromStart                    EQU        1
  54. kIPMFromLEOM                    EQU        2
  55. kIPMFromMark                    EQU        3
  56. ; typedef unsigned short                 IPMAccessMode
  57.  
  58.  
  59. kIPMUpdateMsgBit                EQU        4
  60. kIPMNewMsgBit                    EQU        5
  61. kIPMDeleteMsgBit                EQU        6
  62. ;  Values of IPMNotificationType 
  63.  
  64. kIPMUpdateMsgMask                EQU        $10
  65. kIPMNewMsgMask                    EQU        $20
  66. kIPMDeleteMsgMask                EQU        $40
  67. ; typedef Byte                             IPMNotificationType
  68.  
  69. ;  Values of IPMSenderTag 
  70.  
  71. kIPMSenderRStringTag            EQU        0
  72. kIPMSenderRecordIDTag            EQU        1
  73. ; typedef unsigned short                 IPMSenderTag
  74.  
  75.  
  76. kIPMFromDistListBit                EQU        0
  77. kIPMDummyRecBit                    EQU        1
  78. kIPMFeedbackRecBit                EQU        2                    ; should be redirected to feedback queue 
  79. kIPMReporterRecBit                EQU        3                    ; should be redirected to reporter original queue 
  80. kIPMBCCRecBit                    EQU        4                    ; this recipient is blind to all recipients of message 
  81. ;  Values of OCERecipientOffsetFlags 
  82.  
  83. kIPMFromDistListMask            EQU        $01
  84. kIPMDummyRecMask                EQU        $02
  85. kIPMFeedbackRecMask                EQU        $04
  86. kIPMReporterRecMask                EQU        $08
  87. kIPMBCCRecMask                    EQU        $10
  88. ; typedef Byte                             OCERecipientOffsetFlags
  89.  
  90. OCECreatorType            RECORD 0
  91. msgCreator                 ds.l    1                ; offset: $0 (0)
  92. msgType                     ds.l    1                ; offset: $4 (4)
  93. sizeof                     EQU *                    ; size:   $8 (8)
  94.                         ENDR
  95.  
  96. kIPMTypeWildCard                EQU        'ipmw'
  97. kIPMFamilyUnspecified            EQU        0
  98. kIPMFamilyWildCard                EQU        $3F3F3F3F            ; '????' * well known signature 
  99. kIPMSignature                    EQU        'ipms'                ; base type * well known message types 
  100. kIPMReportNotify                EQU        'rptn'                ; routing feedback * well known message block types 
  101. kIPMEnclosedMsgType                EQU        'emsg'                ; enclosed (nested) message 
  102. kIPMReportInfo                    EQU        'rpti'                ; recipient information 
  103. kIPMDigitalSignature            EQU        'dsig'                ; digital signature 
  104. ;  Values of IPMMsgFormat 
  105.  
  106. kIPMOSFormatType                EQU        1
  107. kIPMStringFormatType            EQU        2
  108. ; typedef unsigned short                 IPMMsgFormat
  109.  
  110. IPMStringMsgType        RECORD 0
  111. f                         ds        Str32
  112. sizeof                     EQU *                    ; size:   $21 (33)
  113.                         ENDR
  114.  
  115.  
  116. TheType                    RECORD 0
  117. msgOSType                 ds        OCECreatorType ; offset: $0 (0)
  118.                          ORG 0
  119. msgStrType                 ds        IPMStringMsgType ; offset: $0 (0)
  120.                          ORG 34
  121. sizeof                     EQU *                    ; size:   $22 (34)
  122.                         ENDR
  123. IPMMsgType                RECORD 0
  124. format                     ds.w    1                ; offset: $0 (0)        ;  IPMMsgFormat
  125. theType                     ds        TheType            ; offset: $2 (2)
  126. sizeof                     EQU *                    ; size:   $24 (36)
  127.                         ENDR
  128. ;
  129. ;Following are the known extension values for IPM addresses handled by Apple.
  130. ;We define the definition of the entn extension below.
  131. ;
  132.  
  133. kOCEalanXtn                        EQU        'alan'
  134. kOCEentnXtn                        EQU        'entn'                ; entn = entity name (aka DSSpec) 
  135. kOCEaphnXtn                        EQU        'aphn'
  136. ;
  137. ;Following are the specific definitions for the extension for the standard
  138. ;OCEMail 'entn' addresses.  [Note, the actual extension is formatted as in
  139. ;IPMEntityNameExtension.]
  140. ;
  141. ;  entn extension forms 
  142.  
  143. kOCEAddrXtn                        EQU        'addr'
  144. kOCEQnamXtn                        EQU        'qnam'
  145. kOCEAttrXtn                        EQU        'attr'                ; an attribute specification 
  146. kOCESpAtXtn                        EQU        'spat'                ; specific attribute 
  147. ;
  148. ;Following are the specific definitions for standard
  149. ;OCEMail 'aphn' extension value.  
  150. ;
  151. ;All RStrings here are packed (e.g. truncated to length) and even padded (e.g.
  152. ;if length odd, then a pad byte (zero) should be introduced before the next field).
  153. ;
  154. ;The extension value is in the packed form of the following structure:
  155. ;    RString        phoneNumber;
  156. ;    RString        modemType;
  157. ;    Str32        queueuName;
  158. ;
  159. ;The body of phoneNumber compound RString is in the packed form of the following structure:
  160. ;    short         subType;
  161. ;    RString     countryCode;                // used when subType == kOCEUseHandyDial
  162. ;    RString        areaCode;                    // used when subType == kOCEUseHandyDial
  163. ;    RString        phone;                        // used when subType == kOCEUseHandyDial
  164. ;    RString        postFix;                    // used when subType == kOCEUseHandyDial
  165. ;    RString        nonHandyDialString;            // used when subType == kOCEDontUseHandyDial
  166. ;
  167. ;  phoneNumber sub type constants 
  168.  
  169. kOCEUseHandyDial                EQU        1
  170. kOCEDontUseHandyDial            EQU        2
  171. ;  FORMAT OF A PACKED FORM RECIPIENT 
  172. ProtoOCEPackedRecipient    RECORD 0
  173. dataLength                 ds.w    1                ; offset: $0 (0)
  174. sizeof                     EQU *                    ; size:   $2 (2)
  175.                         ENDR
  176.  
  177. kOCEPackedRecipientMaxBytes        EQU        4094
  178. OCEPackedRecipient        RECORD 0
  179. dataLength                 ds.w    1                ; offset: $0 (0)
  180. data                     ds.b    4094            ; offset: $2 (2)
  181. sizeof                     EQU *                    ; size:   $1000 (4096)
  182.                         ENDR
  183. IPMEntnQueueExtension    RECORD 0
  184. queueName                 ds        Str32            ; offset: $0 (0)
  185.                          ORG 34
  186. sizeof                     EQU *                    ; size:   $22 (34)
  187.                         ENDR
  188. ;  kOCEAttrXtn 
  189. IPMEntnAttributeExtension RECORD 0
  190. attributeName             ds        AttributeType    ; offset: $0 (0)
  191. sizeof                     EQU *                    ; size:   $24 (36)
  192.                         ENDR
  193. ;  kOCESpAtXtn 
  194. IPMEntnSpecificAttributeExtension RECORD 0
  195. attributeCreationID         ds        AttributeCreationID ; offset: $0 (0)
  196. attributeName             ds        AttributeType    ; offset: $8 (8)
  197. sizeof                     EQU *                    ; size:   $2C (44)
  198.                         ENDR
  199. ;  All IPM entn extensions fit within the following 
  200. IPMEntityNameExtension    RECORD 0
  201. subExtensionType         ds.l    1                ; offset: $0 (0)
  202. specificAttribute         ds        IPMEntnSpecificAttributeExtension ; offset: $4 (4)
  203.                          ORG 4
  204. attribute                 ds        IPMEntnAttributeExtension ; offset: $4 (4)
  205.                          ORG 4
  206. queue                     ds        IPMEntnQueueExtension ; offset: $4 (4)
  207.                          ORG 48
  208. sizeof                     EQU *                    ; size:   $30 (48)
  209.                         ENDR
  210. ;  addresses with kIPMNBPXtn should specify this nbp type 
  211. IPMMsgID                RECORD 0
  212. id                         ds.l    4                ; offset: $0 (0)
  213. sizeof                     EQU *                    ; size:   $10 (16)
  214.                         ENDR
  215. ;  Values of IPMHeaderSelector 
  216.  
  217. kIPMTOC                            EQU        0
  218. kIPMSender                        EQU        1
  219. kIPMProcessHint                    EQU        2
  220. kIPMMessageTitle                EQU        3
  221. kIPMMessageType                    EQU        4
  222. kIPMFixedInfo                    EQU        7
  223. ; typedef Byte                             IPMHeaderSelector
  224.  
  225. TheSender                RECORD 0
  226. rString                     ds        RString            ; offset: $0 (0)
  227.                          ORG 0
  228. rid                         ds        PackedRecordID ; offset: $0 (0)
  229. sizeof                     EQU *                    ; size:   $722 (1826)
  230.                         ENDR
  231. IPMSender                RECORD 0
  232. sendTag                     ds.w    1                ; offset: $0 (0)
  233. theSender                 ds        TheSender        ; offset: $2 (2)
  234. sizeof                     EQU *                    ; size:   $724 (1828)
  235.                         ENDR
  236. ; ****************************************************************************
  237. ;  Definitions specific to OCEMessaging 
  238. ; typedef unsigned long                 IPMContextRef
  239.  
  240. ; typedef unsigned long                 IPMQueueRef
  241.  
  242. ; typedef unsigned long                 IPMMsgRef
  243.  
  244. ; typedef unsigned long                 IPMSeqNum
  245.  
  246. IPMProcHint                RECORD 0
  247. f                         ds        Str32
  248. sizeof                     EQU *                    ; size:   $21 (33)
  249.                         ENDR
  250.  
  251.  
  252. IPMQueueName            RECORD 0
  253. f                         ds        Str32
  254. sizeof                     EQU *                    ; size:   $21 (33)
  255.                         ENDR
  256.  
  257.  
  258. IPMFixedHdrInfo            RECORD 0
  259. version                     ds.w    1                ; offset: $0 (0)
  260. authenticated             ds.b    1                ; offset: $2 (2)
  261. signatureEnclosed         ds.b    1                ; offset: $3 (3)        ;   digital signature enclosed 
  262. msgSize                     ds.l    1                ; offset: $4 (4)
  263. notification             ds.b    1                ; offset: $8 (8)
  264. priority                 ds.b    1                ; offset: $9 (9)
  265. blockCount                 ds.w    1                ; offset: $A (10)
  266. originalRcptCount         ds.w    1                ; offset: $C (12)        ;         original number of recipients 
  267. refCon                     ds.l    1                ; offset: $E (14)        ;         Client defined data 
  268. reserved                 ds.w    1                ; offset: $12 (18)
  269. creationTime             ds.l    1                ; offset: $14 (20)        ;         Time when it was created 
  270. msgID                     ds        IPMMsgID        ; offset: $18 (24)
  271. family                     ds.l    1                ; offset: $28 (40)        ;  family this msg belongs (e.g. mail) 
  272. sizeof                     EQU *                    ; size:   $2C (44)
  273.                         ENDR
  274.  
  275. kIPMDeliveryNotificationBit        EQU        0
  276. kIPMNonDeliveryNotificationBit    EQU        1
  277. kIPMEncloseOriginalBit            EQU        2
  278. kIPMSummaryReportBit            EQU        3                    ; modify enclose original to only on error 
  279. kIPMOriginalOnlyOnErrorBit        EQU        4
  280.  
  281. kIPMNoNotificationMask            EQU        $00
  282. kIPMDeliveryNotificationMask    EQU        $01
  283. kIPMNonDeliveryNotificationMask    EQU        $02
  284. kIPMDontEncloseOriginalMask        EQU        $00
  285. kIPMEncloseOriginalMask            EQU        $04
  286. kIPMImmediateReportMask            EQU        $00
  287. kIPMSummaryReportMask            EQU        $08
  288. kIPMOriginalOnlyOnErrorMask        EQU        $10
  289. kIPMEncloseOriginalOnErrorMask    EQU        $14
  290. ;  standard Non delivery codes 
  291.  
  292. kIPMNoSuchRecipient                EQU        $0001
  293. kIPMRecipientMalformed            EQU        $0002
  294. kIPMRecipientAmbiguous            EQU        $0003
  295. kIPMRecipientAccessDenied        EQU        $0004
  296. kIPMGroupExpansionProblem        EQU        $0005
  297. kIPMMsgUnreadable                EQU        $0006
  298. kIPMMsgExpired                    EQU        $0007
  299. kIPMMsgNoTranslatableContent    EQU        $0008
  300. kIPMRecipientReqStdCont            EQU        $0009
  301. kIPMRecipientReqSnapShot        EQU        $000A
  302. kIPMNoTransferDiskFull            EQU        $000B
  303. kIPMNoTransferMsgRejectedbyDest    EQU        $000C
  304. kIPMNoTransferMsgTooLarge        EQU        $000D
  305. ; ***********************************************************************
  306. ;
  307. ;This is the structure that will be returned by enumerate and getmsginfo
  308. ;This definition is just to give you a template, the position of msgType
  309. ;is variable since this is a packed structure.  procHint and msgType are
  310. ;packed and even length padded.
  311. ;
  312. ;* master message info 
  313. ;
  314. IPMMsgInfo                RECORD 0
  315. sequenceNum                 ds.l    1                ; offset: $0 (0)
  316. userData                 ds.l    1                ; offset: $4 (4)
  317. respIndex                 ds.w    1                ; offset: $8 (8)
  318. padByte                     ds.b    1                ; offset: $A (10)
  319. priority                 ds.b    1                ; offset: $B (11)
  320. msgSize                     ds.l    1                ; offset: $C (12)
  321. originalRcptCount         ds.w    1                ; offset: $10 (16)
  322. reserved                 ds.w    1                ; offset: $12 (18)
  323. creationTime             ds.l    1                ; offset: $14 (20)
  324. msgID                     ds        IPMMsgID        ; offset: $18 (24)
  325. family                     ds.l    1                ; offset: $28 (40)        ;  family this msg belongs (e.g. mail) 
  326. procHint                 ds        IPMProcHint        ; offset: $2C (44)
  327. filler2                     ds.b    1                ; offset: $4D (77)
  328. msgType                     ds        IPMMsgType        ; offset: $4E (78)
  329. sizeof                     EQU *                    ; size:   $72 (114)
  330.                         ENDR
  331. IPMBlockType            RECORD 0
  332. f                         ds        OCECreatorType
  333. sizeof                     EQU *                    ; size:   $8 (8)
  334.                         ENDR
  335.  
  336.  
  337. IPMTOC                    RECORD 0
  338. blockType                 ds        IPMBlockType    ; offset: $0 (0)
  339. blockOffset                 ds.l    1                ; offset: $8 (8)
  340. blockSize                 ds.l    1                ; offset: $C (12)
  341. blockRefCon                 ds.l    1                ; offset: $10 (16)
  342. sizeof                     EQU *                    ; size:   $14 (20)
  343.                         ENDR
  344. ;
  345. ;The following structure is just to describe the layout of the SingleFilter.
  346. ;Each field should be packed and word aligned when passed to the IPM ToolBox.
  347. ;
  348. IPMSingleFilter            RECORD 0
  349. priority                 ds.b    1                ; offset: $0 (0)
  350. padByte                     ds.b    1                ; offset: $1 (1)
  351. family                     ds.l    1                ; offset: $2 (2)        ;  family this msg belongs (e.g. mail), '????' for all 
  352. script                     ds.w    1                ; offset: $6 (6)        ;  Language Identifier 
  353. hint                     ds        IPMProcHint        ; offset: $8 (8)
  354. filler2                     ds.b    1                ; offset: $29 (41)
  355. msgType                     ds        IPMMsgType        ; offset: $2A (42)
  356. sizeof                     EQU *                    ; size:   $4E (78)
  357.                         ENDR
  358. IPMFilter                RECORD 0
  359. count                     ds.w    1                ; offset: $0 (0)
  360. sFilters                 ds        IPMSingleFilter ; offset: $2 (2) <-- really an array of length one
  361. sizeof                     EQU *                    ; size:   $50 (80)
  362.                         ENDR
  363. ;
  364. ;************************************************************************
  365. ;Following structures define the ``start'' of a recipient report block and the
  366. ;elements of the array respectively.
  367. ;
  368. IPMReportBlockHeader    RECORD 0
  369. msgID                     ds        IPMMsgID        ; offset: $0 (0)        ;  message id of the original 
  370. creationTime             ds.l    1                ; offset: $10 (16)        ;  creation time of the report 
  371. sizeof                     EQU *                    ; size:   $14 (20)
  372.                         ENDR
  373. OCERecipientReport        RECORD 0
  374. rcptIndex                 ds.w    1                ; offset: $0 (0)        ;  index of recipient in original message 
  375. result                     ds.w    1                ; offset: $2 (2)        ;  result of sending letter to this recipient
  376. sizeof                     EQU *                    ; size:   $4 (4)
  377.                         ENDR
  378. ; ***********************************************************************
  379.  
  380.  
  381. ; typedef IPMParamBlock *                IPMParamBlockPtr
  382.  
  383. IPMOpenContextPB        RECORD 0
  384. qLink                     ds.l    1                ; offset: $0 (0)
  385. reservedH1                 ds.l    1                ; offset: $4 (4)
  386. reservedH2                 ds.l    1                ; offset: $8 (8)
  387. ioCompletion             ds.l    1                ; offset: $C (12)
  388. ioResult                 ds.w    1                ; offset: $10 (16)
  389. saveA5                     ds.l    1                ; offset: $12 (18)
  390. reqCode                     ds.w    1                ; offset: $16 (22)
  391. contextRef                 ds.l    1                ; offset: $18 (24)        ;  <--  Context reference to be used in further calls
  392. sizeof                     EQU *                    ; size:   $1C (28)
  393.                         ENDR
  394. IPMCloseContextPB        RECORD 0
  395. f                         ds        IPMOpenContextPB
  396. sizeof                     EQU *                    ; size:   $1C (28)
  397.                         ENDR
  398.  
  399.  
  400. IPMCreateQueuePB        RECORD 0
  401. qLink                     ds.l    1                ; offset: $0 (0)
  402. reservedH1                 ds.l    1                ; offset: $4 (4)
  403. reservedH2                 ds.l    1                ; offset: $8 (8)
  404. ioCompletion             ds.l    1                ; offset: $C (12)
  405. ioResult                 ds.w    1                ; offset: $10 (16)
  406. saveA5                     ds.l    1                ; offset: $12 (18)
  407. reqCode                     ds.w    1                ; offset: $16 (22)
  408. filler1                     ds.l    1                ; offset: $18 (24)
  409. queue                     ds.l    1                ; offset: $1C (28)
  410. identity                 ds.l    1                ; offset: $20 (32)        ;  used only if queue is remote 
  411. owner                     ds.l    1                ; offset: $24 (36)        ;  used only if queue is remote 
  412. sizeof                     EQU *                    ; size:   $28 (40)
  413.                         ENDR
  414. ;  For createqueue and deletequeue only queue and identity are used 
  415. IPMDeleteQueuePB        RECORD 0
  416. f                         ds        IPMCreateQueuePB
  417. sizeof                     EQU *                    ; size:   $28 (40)
  418.                         ENDR
  419.  
  420.  
  421. IPMOpenQueuePB            RECORD 0
  422. qLink                     ds.l    1                ; offset: $0 (0)
  423. reservedH1                 ds.l    1                ; offset: $4 (4)
  424. reservedH2                 ds.l    1                ; offset: $8 (8)
  425. ioCompletion             ds.l    1                ; offset: $C (12)
  426. ioResult                 ds.w    1                ; offset: $10 (16)
  427. saveA5                     ds.l    1                ; offset: $12 (18)
  428. reqCode                     ds.w    1                ; offset: $16 (22)
  429. contextRef                 ds.l    1                ; offset: $18 (24)
  430. queue                     ds.l    1                ; offset: $1C (28)
  431. identity                 ds.l    1                ; offset: $20 (32)
  432. filter                     ds.l    1                ; offset: $24 (36)
  433. newQueueRef                 ds.l    1                ; offset: $28 (40)
  434. notificationProc         ds.l    1                ; offset: $2C (44)
  435. userData                 ds.l    1                ; offset: $30 (48)
  436. noteType                 ds.b    1                ; offset: $34 (52)
  437. padByte                     ds.b    1                ; offset: $35 (53)
  438. reserved                 ds.l    1                ; offset: $36 (54)
  439. reserved2                 ds.l    1                ; offset: $3A (58)
  440. sizeof                     EQU *                    ; size:   $3E (62)
  441.                         ENDR
  442. IPMCloseQueuePB            RECORD 0
  443. qLink                     ds.l    1                ; offset: $0 (0)
  444. reservedH1                 ds.l    1                ; offset: $4 (4)
  445. reservedH2                 ds.l    1                ; offset: $8 (8)
  446. ioCompletion             ds.l    1                ; offset: $C (12)
  447. ioResult                 ds.w    1                ; offset: $10 (16)
  448. saveA5                     ds.l    1                ; offset: $12 (18)
  449. reqCode                     ds.w    1                ; offset: $16 (22)
  450. queueRef                 ds.l    1                ; offset: $18 (24)
  451. sizeof                     EQU *                    ; size:   $1C (28)
  452.                         ENDR
  453. IPMEnumerateQueuePB        RECORD 0
  454. qLink                     ds.l    1                ; offset: $0 (0)
  455. reservedH1                 ds.l    1                ; offset: $4 (4)
  456. reservedH2                 ds.l    1                ; offset: $8 (8)
  457. ioCompletion             ds.l    1                ; offset: $C (12)
  458. ioResult                 ds.w    1                ; offset: $10 (16)
  459. saveA5                     ds.l    1                ; offset: $12 (18)
  460. reqCode                     ds.w    1                ; offset: $16 (22)
  461. queueRef                 ds.l    1                ; offset: $18 (24)
  462. startSeqNum                 ds.l    1                ; offset: $1C (28)
  463. getProcHint                 ds.b    1                ; offset: $20 (32)
  464. getMsgType                 ds.b    1                ; offset: $21 (33)
  465. filler                     ds.w    1                ; offset: $22 (34)
  466. filter                     ds.l    1                ; offset: $24 (36)
  467. numToGet                 ds.w    1                ; offset: $28 (40)
  468. numGotten                 ds.w    1                ; offset: $2A (42)
  469. enumCount                 ds.l    1                ; offset: $2C (44)
  470. enumBuffer                 ds.l    1                ; offset: $30 (48)        ;  will be packed array of IPMMsgInfo 
  471. actEnumCount             ds.l    1                ; offset: $34 (52)
  472. sizeof                     EQU *                    ; size:   $38 (56)
  473.                         ENDR
  474. IPMChangeQueueFilterPB    RECORD 0
  475. f                         ds        IPMEnumerateQueuePB
  476. sizeof                     EQU *                    ; size:   $38 (56)
  477.                         ENDR
  478.  
  479.  
  480. IPMDeleteMsgRangePB        RECORD 0
  481. qLink                     ds.l    1                ; offset: $0 (0)
  482. reservedH1                 ds.l    1                ; offset: $4 (4)
  483. reservedH2                 ds.l    1                ; offset: $8 (8)
  484. ioCompletion             ds.l    1                ; offset: $C (12)
  485. ioResult                 ds.w    1                ; offset: $10 (16)
  486. saveA5                     ds.l    1                ; offset: $12 (18)
  487. reqCode                     ds.w    1                ; offset: $16 (22)
  488. queueRef                 ds.l    1                ; offset: $18 (24)
  489. startSeqNum                 ds.l    1                ; offset: $1C (28)
  490. endSeqNum                 ds.l    1                ; offset: $20 (32)
  491. lastSeqNum                 ds.l    1                ; offset: $24 (36)
  492. sizeof                     EQU *                    ; size:   $28 (40)
  493.                         ENDR
  494. IPMOpenMsgPB            RECORD 0
  495. qLink                     ds.l    1                ; offset: $0 (0)
  496. reservedH1                 ds.l    1                ; offset: $4 (4)
  497. reservedH2                 ds.l    1                ; offset: $8 (8)
  498. ioCompletion             ds.l    1                ; offset: $C (12)
  499. ioResult                 ds.w    1                ; offset: $10 (16)
  500. saveA5                     ds.l    1                ; offset: $12 (18)
  501. reqCode                     ds.w    1                ; offset: $16 (22)
  502. queueRef                 ds.l    1                ; offset: $18 (24)
  503. sequenceNum                 ds.l    1                ; offset: $1C (28)
  504. newMsgRef                 ds.l    1                ; offset: $20 (32)
  505. actualSeqNum             ds.l    1                ; offset: $24 (36)
  506. exactMatch                 ds.b    1                ; offset: $28 (40)
  507. padByte                     ds.b    1                ; offset: $29 (41)
  508. reserved                 ds.l    1                ; offset: $2A (42)
  509. sizeof                     EQU *                    ; size:   $2E (46)
  510.                         ENDR
  511. IPMOpenHFSMsgPB            RECORD 0
  512. qLink                     ds.l    1                ; offset: $0 (0)
  513. reservedH1                 ds.l    1                ; offset: $4 (4)
  514. reservedH2                 ds.l    1                ; offset: $8 (8)
  515. ioCompletion             ds.l    1                ; offset: $C (12)
  516. ioResult                 ds.w    1                ; offset: $10 (16)
  517. saveA5                     ds.l    1                ; offset: $12 (18)
  518. reqCode                     ds.w    1                ; offset: $16 (22)
  519. hfsPath                     ds.l    1                ; offset: $18 (24)
  520. filler                     ds.l    1                ; offset: $1C (28)
  521. newMsgRef                 ds.l    1                ; offset: $20 (32)
  522. filler2                     ds.l    1                ; offset: $24 (36)
  523. filler3                     ds.b    1                ; offset: $28 (40)
  524. filler4                     ds.b    1                ; offset: $29 (41)
  525. reserved                 ds.l    1                ; offset: $2A (42)
  526. sizeof                     EQU *                    ; size:   $2E (46)
  527.                         ENDR
  528. IPMOpenBlockAsMsgPB        RECORD 0
  529. qLink                     ds.l    1                ; offset: $0 (0)
  530. reservedH1                 ds.l    1                ; offset: $4 (4)
  531. reservedH2                 ds.l    1                ; offset: $8 (8)
  532. ioCompletion             ds.l    1                ; offset: $C (12)
  533. ioResult                 ds.w    1                ; offset: $10 (16)
  534. saveA5                     ds.l    1                ; offset: $12 (18)
  535. reqCode                     ds.w    1                ; offset: $16 (22)
  536. msgRef                     ds.l    1                ; offset: $18 (24)
  537. filler                     ds.l    1                ; offset: $1C (28)
  538. newMsgRef                 ds.l    1                ; offset: $20 (32)
  539. filler2                     ds.w    7                ; offset: $24 (36)
  540. blockIndex                 ds.w    1                ; offset: $32 (50)
  541. sizeof                     EQU *                    ; size:   $34 (52)
  542.                         ENDR
  543. IPMCloseMsgPB            RECORD 0
  544. qLink                     ds.l    1                ; offset: $0 (0)
  545. reservedH1                 ds.l    1                ; offset: $4 (4)
  546. reservedH2                 ds.l    1                ; offset: $8 (8)
  547. ioCompletion             ds.l    1                ; offset: $C (12)
  548. ioResult                 ds.w    1                ; offset: $10 (16)
  549. saveA5                     ds.l    1                ; offset: $12 (18)
  550. reqCode                     ds.w    1                ; offset: $16 (22)
  551. msgRef                     ds.l    1                ; offset: $18 (24)
  552. deleteMsg                 ds.b    1                ; offset: $1C (28)
  553. filler1                     ds.b    1                ; offset: $1D (29)
  554. sizeof                     EQU *                    ; size:   $1E (30)
  555.                         ENDR
  556. IPMGetMsgInfoPB            RECORD 0
  557. qLink                     ds.l    1                ; offset: $0 (0)
  558. reservedH1                 ds.l    1                ; offset: $4 (4)
  559. reservedH2                 ds.l    1                ; offset: $8 (8)
  560. ioCompletion             ds.l    1                ; offset: $C (12)
  561. ioResult                 ds.w    1                ; offset: $10 (16)
  562. saveA5                     ds.l    1                ; offset: $12 (18)
  563. reqCode                     ds.w    1                ; offset: $16 (22)
  564. msgRef                     ds.l    1                ; offset: $18 (24)
  565. info                     ds.l    1                ; offset: $1C (28)
  566. sizeof                     EQU *                    ; size:   $20 (32)
  567.                         ENDR
  568. IPMReadHeaderPB            RECORD 0
  569. qLink                     ds.l    1                ; offset: $0 (0)
  570. reservedH1                 ds.l    1                ; offset: $4 (4)
  571. reservedH2                 ds.l    1                ; offset: $8 (8)
  572. ioCompletion             ds.l    1                ; offset: $C (12)
  573. ioResult                 ds.w    1                ; offset: $10 (16)
  574. saveA5                     ds.l    1                ; offset: $12 (18)
  575. reqCode                     ds.w    1                ; offset: $16 (22)
  576. msgRef                     ds.l    1                ; offset: $18 (24)
  577. fieldSelector             ds.w    1                ; offset: $1C (28)
  578. offset                     ds.l    1                ; offset: $1E (30)
  579. count                     ds.l    1                ; offset: $22 (34)
  580. buffer                     ds.l    1                ; offset: $26 (38)
  581. actualCount                 ds.l    1                ; offset: $2A (42)
  582. filler                     ds.w    1                ; offset: $2E (46)
  583. remaining                 ds.l    1                ; offset: $30 (48)
  584. sizeof                     EQU *                    ; size:   $34 (52)
  585.                         ENDR
  586. IPMReadRecipientPB        RECORD 0
  587. qLink                     ds.l    1                ; offset: $0 (0)
  588. reservedH1                 ds.l    1                ; offset: $4 (4)
  589. reservedH2                 ds.l    1                ; offset: $8 (8)
  590. ioCompletion             ds.l    1                ; offset: $C (12)
  591. ioResult                 ds.w    1                ; offset: $10 (16)
  592. saveA5                     ds.l    1                ; offset: $12 (18)
  593. reqCode                     ds.w    1                ; offset: $16 (22)
  594. msgRef                     ds.l    1                ; offset: $18 (24)
  595. rcptIndex                 ds.w    1                ; offset: $1C (28)
  596. offset                     ds.l    1                ; offset: $1E (30)
  597. count                     ds.l    1                ; offset: $22 (34)
  598. buffer                     ds.l    1                ; offset: $26 (38)
  599. actualCount                 ds.l    1                ; offset: $2A (42)
  600. reserved                 ds.w    1                ; offset: $2E (46)        ;  must be zero 
  601. remaining                 ds.l    1                ; offset: $30 (48)
  602. originalIndex             ds.w    1                ; offset: $34 (52)
  603. recipientOffsetFlags     ds.b    1                ; offset: $36 (54)
  604. filler1                     ds.b    1                ; offset: $37 (55)
  605. sizeof                     EQU *                    ; size:   $38 (56)
  606.                         ENDR
  607. ;
  608. ;replyQueue works like recipient. [can no longer read it via ReadHeader]
  609. ;OriginalIndex is meaningless, rcptFlags are used seperately and there are
  610. ;currently none defined.
  611. ;
  612. IPMReadReplyQueuePB        RECORD 0
  613. f                         ds        IPMReadRecipientPB
  614. sizeof                     EQU *                    ; size:   $38 (56)
  615.                         ENDR
  616.  
  617.  
  618. IPMGetBlkIndexPB        RECORD 0
  619. qLink                     ds.l    1                ; offset: $0 (0)
  620. reservedH1                 ds.l    1                ; offset: $4 (4)
  621. reservedH2                 ds.l    1                ; offset: $8 (8)
  622. ioCompletion             ds.l    1                ; offset: $C (12)
  623. ioResult                 ds.w    1                ; offset: $10 (16)
  624. saveA5                     ds.l    1                ; offset: $12 (18)
  625. reqCode                     ds.w    1                ; offset: $16 (22)
  626. msgRef                     ds.l    1                ; offset: $18 (24)
  627. blockType                 ds        IPMBlockType    ; offset: $1C (28)
  628. index                     ds.w    1                ; offset: $24 (36)
  629. startingFrom             ds.w    1                ; offset: $26 (38)
  630. actualBlockType             ds        IPMBlockType    ; offset: $28 (40)
  631. actualBlockIndex         ds.w    1                ; offset: $30 (48)
  632. sizeof                     EQU *                    ; size:   $32 (50)
  633.                         ENDR
  634. IPMReadMsgPB            RECORD 0
  635. qLink                     ds.l    1                ; offset: $0 (0)
  636. reservedH1                 ds.l    1                ; offset: $4 (4)
  637. reservedH2                 ds.l    1                ; offset: $8 (8)
  638. ioCompletion             ds.l    1                ; offset: $C (12)
  639. ioResult                 ds.w    1                ; offset: $10 (16)
  640. saveA5                     ds.l    1                ; offset: $12 (18)
  641. reqCode                     ds.w    1                ; offset: $16 (22)
  642. msgRef                     ds.l    1                ; offset: $18 (24)
  643. mode                     ds.w    1                ; offset: $1C (28)
  644. offset                     ds.l    1                ; offset: $1E (30)
  645. count                     ds.l    1                ; offset: $22 (34)
  646. buffer                     ds.l    1                ; offset: $26 (38)
  647. actualCount                 ds.l    1                ; offset: $2A (42)
  648. blockIndex                 ds.w    1                ; offset: $2E (46)
  649. remaining                 ds.l    1                ; offset: $30 (48)
  650. sizeof                     EQU *                    ; size:   $34 (52)
  651.                         ENDR
  652. IPMVerifySignaturePB    RECORD 0
  653. qLink                     ds.l    1                ; offset: $0 (0)
  654. reservedH1                 ds.l    1                ; offset: $4 (4)
  655. reservedH2                 ds.l    1                ; offset: $8 (8)
  656. ioCompletion             ds.l    1                ; offset: $C (12)
  657. ioResult                 ds.w    1                ; offset: $10 (16)
  658. saveA5                     ds.l    1                ; offset: $12 (18)
  659. reqCode                     ds.w    1                ; offset: $16 (22)
  660. msgRef                     ds.l    1                ; offset: $18 (24)
  661. signatureContext         ds.l    1                ; offset: $1C (28)
  662. sizeof                     EQU *                    ; size:   $20 (32)
  663.                         ENDR
  664. IPMNewMsgPB                RECORD 0
  665. qLink                     ds.l    1                ; offset: $0 (0)
  666. reservedH1                 ds.l    1                ; offset: $4 (4)
  667. reservedH2                 ds.l    1                ; offset: $8 (8)
  668. ioCompletion             ds.l    1                ; offset: $C (12)
  669. ioResult                 ds.w    1                ; offset: $10 (16)
  670. saveA5                     ds.l    1                ; offset: $12 (18)
  671. reqCode                     ds.w    1                ; offset: $16 (22)
  672. filler                     ds.l    1                ; offset: $18 (24)
  673. recipient                 ds.l    1                ; offset: $1C (28)
  674. replyQueue                 ds.l    1                ; offset: $20 (32)
  675. procHint                 ds.l    1                ; offset: $24 (36)
  676. filler2                     ds.w    1                ; offset: $28 (40)
  677. msgType                     ds.l    1                ; offset: $2A (42)
  678. refCon                     ds.l    1                ; offset: $2E (46)
  679. newMsgRef                 ds.l    1                ; offset: $32 (50)
  680. filler3                     ds.w    1                ; offset: $36 (54)
  681. filler4                     ds.l    1                ; offset: $38 (56)
  682. identity                 ds.l    1                ; offset: $3C (60)
  683. sender                     ds.l    1                ; offset: $40 (64)
  684. internalUse                 ds.l    1                ; offset: $44 (68)
  685. internalUse2             ds.l    1                ; offset: $48 (72)
  686. sizeof                     EQU *                    ; size:   $4C (76)
  687.                         ENDR
  688. IPMNewHFSMsgPB            RECORD 0
  689. qLink                     ds.l    1                ; offset: $0 (0)
  690. reservedH1                 ds.l    1                ; offset: $4 (4)
  691. reservedH2                 ds.l    1                ; offset: $8 (8)
  692. ioCompletion             ds.l    1                ; offset: $C (12)
  693. ioResult                 ds.w    1                ; offset: $10 (16)
  694. saveA5                     ds.l    1                ; offset: $12 (18)
  695. reqCode                     ds.w    1                ; offset: $16 (22)
  696. hfsPath                     ds.l    1                ; offset: $18 (24)
  697. recipient                 ds.l    1                ; offset: $1C (28)
  698. replyQueue                 ds.l    1                ; offset: $20 (32)
  699. procHint                 ds.l    1                ; offset: $24 (36)
  700. filler2                     ds.w    1                ; offset: $28 (40)
  701. msgType                     ds.l    1                ; offset: $2A (42)
  702. refCon                     ds.l    1                ; offset: $2E (46)
  703. newMsgRef                 ds.l    1                ; offset: $32 (50)
  704. filler3                     ds.w    1                ; offset: $36 (54)
  705. filler4                     ds.l    1                ; offset: $38 (56)
  706. identity                 ds.l    1                ; offset: $3C (60)
  707. sender                     ds.l    1                ; offset: $40 (64)
  708. internalUse                 ds.l    1                ; offset: $44 (68)
  709. internalUse2             ds.l    1                ; offset: $48 (72)
  710. sizeof                     EQU *                    ; size:   $4C (76)
  711.                         ENDR
  712. IPMNestMsgPB            RECORD 0
  713. qLink                     ds.l    1                ; offset: $0 (0)
  714. reservedH1                 ds.l    1                ; offset: $4 (4)
  715. reservedH2                 ds.l    1                ; offset: $8 (8)
  716. ioCompletion             ds.l    1                ; offset: $C (12)
  717. ioResult                 ds.w    1                ; offset: $10 (16)
  718. saveA5                     ds.l    1                ; offset: $12 (18)
  719. reqCode                     ds.w    1                ; offset: $16 (22)
  720. msgRef                     ds.l    1                ; offset: $18 (24)
  721. filler                     ds.w    9                ; offset: $1C (28)
  722. refCon                     ds.l    1                ; offset: $2E (46)
  723. msgToNest                 ds.l    1                ; offset: $32 (50)
  724. filler2                     ds.w    1                ; offset: $36 (54)
  725. startingOffset             ds.l    1                ; offset: $38 (56)
  726. sizeof                     EQU *                    ; size:   $3C (60)
  727.                         ENDR
  728. IPMNewNestedMsgBlockPB    RECORD 0
  729. qLink                     ds.l    1                ; offset: $0 (0)
  730. reservedH1                 ds.l    1                ; offset: $4 (4)
  731. reservedH2                 ds.l    1                ; offset: $8 (8)
  732. ioCompletion             ds.l    1                ; offset: $C (12)
  733. ioResult                 ds.w    1                ; offset: $10 (16)
  734. saveA5                     ds.l    1                ; offset: $12 (18)
  735. reqCode                     ds.w    1                ; offset: $16 (22)
  736. msgRef                     ds.l    1                ; offset: $18 (24)
  737. recipient                 ds.l    1                ; offset: $1C (28)
  738. replyQueue                 ds.l    1                ; offset: $20 (32)
  739. procHint                 ds.l    1                ; offset: $24 (36)
  740. filler1                     ds.w    1                ; offset: $28 (40)
  741. msgType                     ds.l    1                ; offset: $2A (42)
  742. refCon                     ds.l    1                ; offset: $2E (46)
  743. newMsgRef                 ds.l    1                ; offset: $32 (50)
  744. filler2                     ds.w    1                ; offset: $36 (54)
  745. startingOffset             ds.l    1                ; offset: $38 (56)
  746. identity                 ds.l    1                ; offset: $3C (60)
  747. sender                     ds.l    1                ; offset: $40 (64)
  748. internalUse                 ds.l    1                ; offset: $44 (68)
  749. internalUse2             ds.l    1                ; offset: $48 (72)
  750. sizeof                     EQU *                    ; size:   $4C (76)
  751.                         ENDR
  752. IPMEndMsgPB                RECORD 0
  753. qLink                     ds.l    1                ; offset: $0 (0)
  754. reservedH1                 ds.l    1                ; offset: $4 (4)
  755. reservedH2                 ds.l    1                ; offset: $8 (8)
  756. ioCompletion             ds.l    1                ; offset: $C (12)
  757. ioResult                 ds.w    1                ; offset: $10 (16)
  758. saveA5                     ds.l    1                ; offset: $12 (18)
  759. reqCode                     ds.w    1                ; offset: $16 (22)
  760. msgRef                     ds.l    1                ; offset: $18 (24)
  761. msgID                     ds        IPMMsgID        ; offset: $1C (28)
  762. msgTitle                 ds.l    1                ; offset: $2C (44)
  763. deliveryNotification     ds.b    1                ; offset: $30 (48)
  764. priority                 ds.b    1                ; offset: $31 (49)
  765. cancel                     ds.b    1                ; offset: $32 (50)
  766. padByte                     ds.b    1                ; offset: $33 (51)
  767. reserved                 ds.l    1                ; offset: $34 (52)
  768. signature                 ds.l    1                ; offset: $38 (56)
  769. signatureSize             ds.l    1                ; offset: $3C (60)
  770. signatureContext         ds.l    1                ; offset: $40 (64)
  771. ;  family this msg belongs (e.g. mail) use kIPMFamilyUnspecified by default 
  772. family                     ds.l    1                ; offset: $44 (68)
  773. sizeof                     EQU *                    ; size:   $48 (72)
  774.                         ENDR
  775. IPMAddRecipientPB        RECORD 0
  776. qLink                     ds.l    1                ; offset: $0 (0)
  777. reservedH1                 ds.l    1                ; offset: $4 (4)
  778. reservedH2                 ds.l    1                ; offset: $8 (8)
  779. ioCompletion             ds.l    1                ; offset: $C (12)
  780. ioResult                 ds.w    1                ; offset: $10 (16)
  781. saveA5                     ds.l    1                ; offset: $12 (18)
  782. reqCode                     ds.w    1                ; offset: $16 (22)
  783. msgRef                     ds.l    1                ; offset: $18 (24)
  784. recipient                 ds.l    1                ; offset: $1C (28)
  785. reserved                 ds.l    1                ; offset: $20 (32)
  786. sizeof                     EQU *                    ; size:   $24 (36)
  787.                         ENDR
  788. IPMAddReplyQueuePB        RECORD 0
  789. qLink                     ds.l    1                ; offset: $0 (0)
  790. reservedH1                 ds.l    1                ; offset: $4 (4)
  791. reservedH2                 ds.l    1                ; offset: $8 (8)
  792. ioCompletion             ds.l    1                ; offset: $C (12)
  793. ioResult                 ds.w    1                ; offset: $10 (16)
  794. saveA5                     ds.l    1                ; offset: $12 (18)
  795. reqCode                     ds.w    1                ; offset: $16 (22)
  796. msgRef                     ds.l    1                ; offset: $18 (24)
  797. filler                     ds.l    1                ; offset: $1C (28)
  798. replyQueue                 ds.l    1                ; offset: $20 (32)
  799. sizeof                     EQU *                    ; size:   $24 (36)
  800.                         ENDR
  801. IPMNewBlockPB            RECORD 0
  802. qLink                     ds.l    1                ; offset: $0 (0)
  803. reservedH1                 ds.l    1                ; offset: $4 (4)
  804. reservedH2                 ds.l    1                ; offset: $8 (8)
  805. ioCompletion             ds.l    1                ; offset: $C (12)
  806. ioResult                 ds.w    1                ; offset: $10 (16)
  807. saveA5                     ds.l    1                ; offset: $12 (18)
  808. reqCode                     ds.w    1                ; offset: $16 (22)
  809. msgRef                     ds.l    1                ; offset: $18 (24)
  810. blockType                 ds        IPMBlockType    ; offset: $1C (28)
  811. filler                     ds.w    5                ; offset: $24 (36)
  812. refCon                     ds.l    1                ; offset: $2E (46)
  813. filler2                     ds.w    3                ; offset: $32 (50)
  814. startingOffset             ds.l    1                ; offset: $38 (56)
  815. sizeof                     EQU *                    ; size:   $3C (60)
  816.                         ENDR
  817. IPMWriteMsgPB            RECORD 0
  818. qLink                     ds.l    1                ; offset: $0 (0)
  819. reservedH1                 ds.l    1                ; offset: $4 (4)
  820. reservedH2                 ds.l    1                ; offset: $8 (8)
  821. ioCompletion             ds.l    1                ; offset: $C (12)
  822. ioResult                 ds.w    1                ; offset: $10 (16)
  823. saveA5                     ds.l    1                ; offset: $12 (18)
  824. reqCode                     ds.w    1                ; offset: $16 (22)
  825. msgRef                     ds.l    1                ; offset: $18 (24)
  826. mode                     ds.w    1                ; offset: $1C (28)
  827. offset                     ds.l    1                ; offset: $1E (30)
  828. count                     ds.l    1                ; offset: $22 (34)
  829. buffer                     ds.l    1                ; offset: $26 (38)
  830. actualCount                 ds.l    1                ; offset: $2A (42)
  831. currentBlock             ds.b    1                ; offset: $2E (46)
  832. filler1                     ds.b    1                ; offset: $2F (47)
  833. sizeof                     EQU *                    ; size:   $30 (48)
  834.                         ENDR
  835. IPMParamBlock            RECORD 0
  836. qLink                     ds.l    1                ; offset: $0 (0)
  837. reservedH1                 ds.l    1                ; offset: $4 (4)
  838. reservedH2                 ds.l    1                ; offset: $8 (8)
  839. ioCompletion             ds.l    1                ; offset: $C (12)
  840. ioResult                 ds.w    1                ; offset: $10 (16)
  841. saveA5                     ds.l    1                ; offset: $12 (18)
  842. reqCode                     ds.w    1                ; offset: $16 (22)
  843.                          ORG 0
  844. openContextPB             ds        IPMOpenContextPB ; offset: $0 (0)
  845.                          ORG 0
  846. closeContextPB             ds        IPMCloseContextPB ; offset: $0 (0)
  847.                          ORG 0
  848. createQueuePB             ds        IPMCreateQueuePB ; offset: $0 (0)
  849.                          ORG 0
  850. deleteQueuePB             ds        IPMDeleteQueuePB ; offset: $0 (0)
  851.                          ORG 0
  852. openQueuePB                 ds        IPMOpenQueuePB ; offset: $0 (0)
  853.                          ORG 0
  854. closeQueuePB             ds        IPMCloseQueuePB ; offset: $0 (0)
  855.                          ORG 0
  856. enumerateQueuePB         ds        IPMEnumerateQueuePB ; offset: $0 (0)
  857.                          ORG 0
  858. changeQueueFilterPB         ds        IPMChangeQueueFilterPB ; offset: $0 (0)
  859.                          ORG 0
  860. deleteMsgRangePB         ds        IPMDeleteMsgRangePB ; offset: $0 (0)
  861.                          ORG 0
  862. openMsgPB                 ds        IPMOpenMsgPB    ; offset: $0 (0)
  863.                          ORG 0
  864. openHFSMsgPB             ds        IPMOpenHFSMsgPB ; offset: $0 (0)
  865.                          ORG 0
  866. openBlockAsMsgPB         ds        IPMOpenBlockAsMsgPB ; offset: $0 (0)
  867.                          ORG 0
  868. closeMsgPB                 ds        IPMCloseMsgPB    ; offset: $0 (0)
  869.                          ORG 0
  870. getMsgInfoPB             ds        IPMGetMsgInfoPB ; offset: $0 (0)
  871.                          ORG 0
  872. readHeaderPB             ds        IPMReadHeaderPB ; offset: $0 (0)
  873.                          ORG 0
  874. readRecipientPB             ds        IPMReadRecipientPB ; offset: $0 (0)
  875.                          ORG 0
  876. readReplyQueuePB         ds        IPMReadReplyQueuePB ; offset: $0 (0)
  877.                          ORG 0
  878. getBlkIndexPB             ds        IPMGetBlkIndexPB ; offset: $0 (0)
  879.                          ORG 0
  880. readMsgPB                 ds        IPMReadMsgPB    ; offset: $0 (0)
  881.                          ORG 0
  882. verifySignaturePB         ds        IPMVerifySignaturePB ; offset: $0 (0)
  883.                          ORG 0
  884. newMsgPB                 ds        IPMNewMsgPB        ; offset: $0 (0)
  885.                          ORG 0
  886. newHFSMsgPB                 ds        IPMNewHFSMsgPB ; offset: $0 (0)
  887.                          ORG 0
  888. nestMsgPB                 ds        IPMNestMsgPB    ; offset: $0 (0)
  889.                          ORG 0
  890. newNestedMsgBlockPB         ds        IPMNewNestedMsgBlockPB ; offset: $0 (0)
  891.                          ORG 0
  892. endMsgPB                 ds        IPMEndMsgPB        ; offset: $0 (0)
  893.                          ORG 0
  894. addRecipientPB             ds        IPMAddRecipientPB ; offset: $0 (0)
  895.                          ORG 0
  896. addReplyQueuePB             ds        IPMAddReplyQueuePB ; offset: $0 (0)
  897.                          ORG 0
  898. newBlockPB                 ds        IPMNewBlockPB    ; offset: $0 (0)
  899.                          ORG 0
  900. writeMsgPB                 ds        IPMWriteMsgPB    ; offset: $0 (0)
  901.                          ORG 76
  902. sizeof                     EQU *                    ; size:   $4C (76)
  903.                         ENDR
  904. ;
  905. ; pascal OSErr IPMOpenContext(IPMParamBlockPtr paramBlock, Boolean async)
  906. ;
  907.     IF ¨ GENERATINGCFM THEN
  908.         Macro
  909.         _IPMOpenContext
  910.             move.w              #$0400,-(sp)
  911.             dc.w                $AA5E
  912.         EndM
  913.     ELSE
  914.         IMPORT_CFM_FUNCTION IPMOpenContext
  915.     ENDIF
  916.  
  917. ;
  918. ; pascal OSErr IPMCloseContext(IPMParamBlockPtr paramBlock, Boolean async)
  919. ;
  920.     IF ¨ GENERATINGCFM THEN
  921.         Macro
  922.         _IPMCloseContext
  923.             move.w              #$0401,-(sp)
  924.             dc.w                $AA5E
  925.         EndM
  926.     ELSE
  927.         IMPORT_CFM_FUNCTION IPMCloseContext
  928.     ENDIF
  929.  
  930. ;
  931. ; pascal OSErr IPMNewMsg(IPMParamBlockPtr paramBlock, Boolean async)
  932. ;
  933.     IF ¨ GENERATINGCFM THEN
  934.         Macro
  935.         _IPMNewMsg
  936.             move.w              #$0402,-(sp)
  937.             dc.w                $AA5E
  938.         EndM
  939.     ELSE
  940.         IMPORT_CFM_FUNCTION IPMNewMsg
  941.     ENDIF
  942.  
  943. ;
  944. ; pascal OSErr IPMNewBlock(IPMParamBlockPtr paramBlock, Boolean async)
  945. ;
  946.     IF ¨ GENERATINGCFM THEN
  947.         Macro
  948.         _IPMNewBlock
  949.             move.w              #$0404,-(sp)
  950.             dc.w                $AA5E
  951.         EndM
  952.     ELSE
  953.         IMPORT_CFM_FUNCTION IPMNewBlock
  954.     ENDIF
  955.  
  956. ;
  957. ; pascal OSErr IPMNewNestedMsgBlock(IPMParamBlockPtr paramBlock, Boolean async)
  958. ;
  959.     IF ¨ GENERATINGCFM THEN
  960.         Macro
  961.         _IPMNewNestedMsgBlock
  962.             move.w              #$0405,-(sp)
  963.             dc.w                $AA5E
  964.         EndM
  965.     ELSE
  966.         IMPORT_CFM_FUNCTION IPMNewNestedMsgBlock
  967.     ENDIF
  968.  
  969. ;
  970. ; pascal OSErr IPMNestMsg(IPMParamBlockPtr paramBlock, Boolean async)
  971. ;
  972.     IF ¨ GENERATINGCFM THEN
  973.         Macro
  974.         _IPMNestMsg
  975.             move.w              #$0406,-(sp)
  976.             dc.w                $AA5E
  977.         EndM
  978.     ELSE
  979.         IMPORT_CFM_FUNCTION IPMNestMsg
  980.     ENDIF
  981.  
  982. ;
  983. ; pascal OSErr IPMWriteMsg(IPMParamBlockPtr paramBlock, Boolean async)
  984. ;
  985.     IF ¨ GENERATINGCFM THEN
  986.         Macro
  987.         _IPMWriteMsg
  988.             move.w              #$0407,-(sp)
  989.             dc.w                $AA5E
  990.         EndM
  991.     ELSE
  992.         IMPORT_CFM_FUNCTION IPMWriteMsg
  993.     ENDIF
  994.  
  995. ;
  996. ; pascal OSErr IPMEndMsg(IPMParamBlockPtr paramBlock, Boolean async)
  997. ;
  998.     IF ¨ GENERATINGCFM THEN
  999.         Macro
  1000.         _IPMEndMsg
  1001.             move.w              #$0408,-(sp)
  1002.             dc.w                $AA5E
  1003.         EndM
  1004.     ELSE
  1005.         IMPORT_CFM_FUNCTION IPMEndMsg
  1006.     ENDIF
  1007.  
  1008. ;
  1009. ; pascal OSErr IPMOpenQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1010. ;
  1011.     IF ¨ GENERATINGCFM THEN
  1012.         Macro
  1013.         _IPMOpenQueue
  1014.             move.w              #$0409,-(sp)
  1015.             dc.w                $AA5E
  1016.         EndM
  1017.     ELSE
  1018.         IMPORT_CFM_FUNCTION IPMOpenQueue
  1019.     ENDIF
  1020.  
  1021. ;
  1022. ; pascal OSErr IPMCloseQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1023. ;
  1024.     IF ¨ GENERATINGCFM THEN
  1025.         Macro
  1026.         _IPMCloseQueue
  1027.             move.w              #$040A,-(sp)
  1028.             dc.w                $AA5E
  1029.         EndM
  1030.     ELSE
  1031.         IMPORT_CFM_FUNCTION IPMCloseQueue
  1032.     ENDIF
  1033.  
  1034. ;  Always synchronous 
  1035. ;
  1036. ; pascal OSErr IPMVerifySignature(IPMParamBlockPtr paramBlock)
  1037. ;
  1038.     IF ¨ GENERATINGCFM THEN
  1039.         Macro
  1040.         _IPMVerifySignature
  1041.             moveq               #0,D0
  1042.             move.b              D0,-(sp)
  1043.             move.w              #$0422,-(sp)
  1044.             dc.w                $AA5E
  1045.         EndM
  1046.     ELSE
  1047.         IMPORT_CFM_FUNCTION IPMVerifySignature
  1048.     ENDIF
  1049.  
  1050. ;
  1051. ; pascal OSErr IPMOpenMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1052. ;
  1053.     IF ¨ GENERATINGCFM THEN
  1054.         Macro
  1055.         _IPMOpenMsg
  1056.             move.w              #$040B,-(sp)
  1057.             dc.w                $AA5E
  1058.         EndM
  1059.     ELSE
  1060.         IMPORT_CFM_FUNCTION IPMOpenMsg
  1061.     ENDIF
  1062.  
  1063. ;
  1064. ; pascal OSErr IPMCloseMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1065. ;
  1066.     IF ¨ GENERATINGCFM THEN
  1067.         Macro
  1068.         _IPMCloseMsg
  1069.             move.w              #$040C,-(sp)
  1070.             dc.w                $AA5E
  1071.         EndM
  1072.     ELSE
  1073.         IMPORT_CFM_FUNCTION IPMCloseMsg
  1074.     ENDIF
  1075.  
  1076. ;
  1077. ; pascal OSErr IPMReadMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1078. ;
  1079.     IF ¨ GENERATINGCFM THEN
  1080.         Macro
  1081.         _IPMReadMsg
  1082.             move.w              #$040D,-(sp)
  1083.             dc.w                $AA5E
  1084.         EndM
  1085.     ELSE
  1086.         IMPORT_CFM_FUNCTION IPMReadMsg
  1087.     ENDIF
  1088.  
  1089. ;
  1090. ; pascal OSErr IPMReadHeader(IPMParamBlockPtr paramBlock, Boolean async)
  1091. ;
  1092.     IF ¨ GENERATINGCFM THEN
  1093.         Macro
  1094.         _IPMReadHeader
  1095.             move.w              #$040E,-(sp)
  1096.             dc.w                $AA5E
  1097.         EndM
  1098.     ELSE
  1099.         IMPORT_CFM_FUNCTION IPMReadHeader
  1100.     ENDIF
  1101.  
  1102. ;
  1103. ; pascal OSErr IPMOpenBlockAsMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1104. ;
  1105.     IF ¨ GENERATINGCFM THEN
  1106.         Macro
  1107.         _IPMOpenBlockAsMsg
  1108.             move.w              #$040F,-(sp)
  1109.             dc.w                $AA5E
  1110.         EndM
  1111.     ELSE
  1112.         IMPORT_CFM_FUNCTION IPMOpenBlockAsMsg
  1113.     ENDIF
  1114.  
  1115. ;
  1116. ; pascal OSErr IPMNewHFSMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1117. ;
  1118.     IF ¨ GENERATINGCFM THEN
  1119.         Macro
  1120.         _IPMNewHFSMsg
  1121.             move.w              #$041E,-(sp)
  1122.             dc.w                $AA5E
  1123.         EndM
  1124.     ELSE
  1125.         IMPORT_CFM_FUNCTION IPMNewHFSMsg
  1126.     ENDIF
  1127.  
  1128. ;
  1129. ; pascal OSErr IPMReadRecipient(IPMParamBlockPtr paramBlock, Boolean async)
  1130. ;
  1131.     IF ¨ GENERATINGCFM THEN
  1132.         Macro
  1133.         _IPMReadRecipient
  1134.             move.w              #$0410,-(sp)
  1135.             dc.w                $AA5E
  1136.         EndM
  1137.     ELSE
  1138.         IMPORT_CFM_FUNCTION IPMReadRecipient
  1139.     ENDIF
  1140.  
  1141. ;
  1142. ; pascal OSErr IPMReadReplyQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1143. ;
  1144.     IF ¨ GENERATINGCFM THEN
  1145.         Macro
  1146.         _IPMReadReplyQueue
  1147.             move.w              #$0421,-(sp)
  1148.             dc.w                $AA5E
  1149.         EndM
  1150.     ELSE
  1151.         IMPORT_CFM_FUNCTION IPMReadReplyQueue
  1152.     ENDIF
  1153.  
  1154. ;
  1155. ; pascal OSErr IPMCreateQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1156. ;
  1157.     IF ¨ GENERATINGCFM THEN
  1158.         Macro
  1159.         _IPMCreateQueue
  1160.             move.w              #$0411,-(sp)
  1161.             dc.w                $AA5E
  1162.         EndM
  1163.     ELSE
  1164.         IMPORT_CFM_FUNCTION IPMCreateQueue
  1165.     ENDIF
  1166.  
  1167. ;
  1168. ; pascal OSErr IPMDeleteQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1169. ;
  1170.     IF ¨ GENERATINGCFM THEN
  1171.         Macro
  1172.         _IPMDeleteQueue
  1173.             move.w              #$0412,-(sp)
  1174.             dc.w                $AA5E
  1175.         EndM
  1176.     ELSE
  1177.         IMPORT_CFM_FUNCTION IPMDeleteQueue
  1178.     ENDIF
  1179.  
  1180. ;
  1181. ; pascal OSErr IPMEnumerateQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1182. ;
  1183.     IF ¨ GENERATINGCFM THEN
  1184.         Macro
  1185.         _IPMEnumerateQueue
  1186.             move.w              #$0413,-(sp)
  1187.             dc.w                $AA5E
  1188.         EndM
  1189.     ELSE
  1190.         IMPORT_CFM_FUNCTION IPMEnumerateQueue
  1191.     ENDIF
  1192.  
  1193. ;
  1194. ; pascal OSErr IPMChangeQueueFilter(IPMParamBlockPtr paramBlock, Boolean async)
  1195. ;
  1196.     IF ¨ GENERATINGCFM THEN
  1197.         Macro
  1198.         _IPMChangeQueueFilter
  1199.             move.w              #$0414,-(sp)
  1200.             dc.w                $AA5E
  1201.         EndM
  1202.     ELSE
  1203.         IMPORT_CFM_FUNCTION IPMChangeQueueFilter
  1204.     ENDIF
  1205.  
  1206. ;
  1207. ; pascal OSErr IPMDeleteMsgRange(IPMParamBlockPtr paramBlock, Boolean async)
  1208. ;
  1209.     IF ¨ GENERATINGCFM THEN
  1210.         Macro
  1211.         _IPMDeleteMsgRange
  1212.             move.w              #$0415,-(sp)
  1213.             dc.w                $AA5E
  1214.         EndM
  1215.     ELSE
  1216.         IMPORT_CFM_FUNCTION IPMDeleteMsgRange
  1217.     ENDIF
  1218.  
  1219. ;
  1220. ; pascal OSErr IPMAddRecipient(IPMParamBlockPtr paramBlock, Boolean async)
  1221. ;
  1222.     IF ¨ GENERATINGCFM THEN
  1223.         Macro
  1224.         _IPMAddRecipient
  1225.             move.w              #$0403,-(sp)
  1226.             dc.w                $AA5E
  1227.         EndM
  1228.     ELSE
  1229.         IMPORT_CFM_FUNCTION IPMAddRecipient
  1230.     ENDIF
  1231.  
  1232. ;
  1233. ; pascal OSErr IPMAddReplyQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1234. ;
  1235.     IF ¨ GENERATINGCFM THEN
  1236.         Macro
  1237.         _IPMAddReplyQueue
  1238.             move.w              #$041D,-(sp)
  1239.             dc.w                $AA5E
  1240.         EndM
  1241.     ELSE
  1242.         IMPORT_CFM_FUNCTION IPMAddReplyQueue
  1243.     ENDIF
  1244.  
  1245. ;
  1246. ; pascal OSErr IPMOpenHFSMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1247. ;
  1248.     IF ¨ GENERATINGCFM THEN
  1249.         Macro
  1250.         _IPMOpenHFSMsg
  1251.             move.w              #$0417,-(sp)
  1252.             dc.w                $AA5E
  1253.         EndM
  1254.     ELSE
  1255.         IMPORT_CFM_FUNCTION IPMOpenHFSMsg
  1256.     ENDIF
  1257.  
  1258. ;
  1259. ; pascal OSErr IPMGetBlkIndex(IPMParamBlockPtr paramBlock, Boolean async)
  1260. ;
  1261.     IF ¨ GENERATINGCFM THEN
  1262.         Macro
  1263.         _IPMGetBlkIndex
  1264.             move.w              #$0418,-(sp)
  1265.             dc.w                $AA5E
  1266.         EndM
  1267.     ELSE
  1268.         IMPORT_CFM_FUNCTION IPMGetBlkIndex
  1269.     ENDIF
  1270.  
  1271. ;
  1272. ; pascal OSErr IPMGetMsgInfo(IPMParamBlockPtr paramBlock, Boolean async)
  1273. ;
  1274.     IF ¨ GENERATINGCFM THEN
  1275.         Macro
  1276.         _IPMGetMsgInfo
  1277.             move.w              #$0419,-(sp)
  1278.             dc.w                $AA5E
  1279.         EndM
  1280.     ELSE
  1281.         IMPORT_CFM_FUNCTION IPMGetMsgInfo
  1282.     ENDIF
  1283.  
  1284.     ENDIF
  1285.     ENDIF ; __OCEMESSAGING__ 
  1286.  
  1287.